<?php
	if (!isset($_SESSION)) {
		session_start();		
	}

	// test if session has already been initialized before
	if (!isset($_SESSION['SESS_MEMBER_NAME']) && $_SERVER['PHP_SELF']!="/php/pages/inscription.php")
		header("location: ../../index.php?msg=sessionExpired");

	mysql_connect($_SESSION['BDD_SERVER'], $_SESSION['BDD_LOGIN'], $_SESSION['BDD_PASSWORD']) or die("erreur de connexion au serveur");
	mysql_select_db($_SESSION['BDD']) or die("erreur de connexion a la base de donnees");

	if (isset($_POST['contexte_id'])) {
		$_SESSION['SESS_CONTEXTE_ID'] = $_POST['contexte_id'];
		if ($_POST['filtre_contexte']=='on')
			$_SESSION['SESS_FILTRE_CONTEXTE'] = 1;
		else 
			$_SESSION['SESS_FILTRE_CONTEXTE'] = 0;
		if ($_POST['filtre_utilisateur']=='on')
			$_SESSION['SESS_FILTRE_UTILISATEUR'] = 1;
		else
			$_SESSION['SESS_FILTRE_UTILISATEUR'] = 0;
		$queryUpdateUserPref = 'UPDATE utilisateurs set filtre_contexte = '.$_SESSION['SESS_FILTRE_CONTEXTE']. 
							', filtre_utilisateur = '.$_SESSION['SESS_FILTRE_UTILISATEUR'].
							' where id = '.$_SESSION['SESS_MEMBER_ID'].';';
		mysql_query($queryUpdateUserPref) or die(mysql_error());
	}

	// Utilit�e des variables de session
	// - SESS_MEMBER_ID : utilisateur connect�
	// - SESS_FILTRE_UTILISATEUR : filtre sur l'utilisateur conntect� actif ou non.
	//		Si oui on ne consid�re que ses donn�es
	//		Si non on consid�re ses donn�es et celles des autres utilisateurs qui ont un r�le dans ses cabinets
	// - SESS_FILTRE_UTILISATEUR_VALUE : liste d'identifiant du/des utilisateur(s)
	// - SESS_CONTEXTE_ID : contexte de travail
	// - SESS_FILTRE_CONTEXTE : filtre sur le contexte actif ou non.
	//		Si oui on ne consid�re que les donn�es li�es � ce contexte
	//		Si non on consid�re les donn�es de ce contexte et celles des autres dans lequel l'utilisateur un r�le
	// - SESS_FILTRE_CONTEXTE_VALUE : liste d'identifiant des contextes utiles

	// Singleton sur les utilisateurs � consid�rer
	if (!isset( $_SESSION['SESS_FILTRE_UTILISATEUR_VALUE'] )) { // tester le cas de changement
		if (isset( $_SESSION['SESS_FILTRE_UTILISATEUR'] )) {
			if ($_SESSION['SESS_FILTRE_UTILISATEUR']==1) {
				$queryClauseUtilisateur = " and utilisateur_id = ".$_SESSION['SESS_MEMBER_ID'];
				$_SESSION['SESS_FILTRE_UTILISATEUR_VALUE'] = $_SESSION['SESS_MEMBER_ID'];
			} else {
				$_SESSION['SESS_FILTRE_UTILISATEUR_VALUE'] = getAllRelatedUsers($_SESSION['SESS_MEMBER_ID']);
				$queryClauseUtilisateur = " and utilisateur_id in (".$_SESSION['SESS_FILTRE_UTILISATEUR_VALUE'].") ";
			}
		}
	} else {
		$queryClauseUtilisateur = " and utilisateur_id in (".$_SESSION['SESS_FILTRE_UTILISATEUR_VALUE'].") ";
	}

	if (!isset( $_SESSION['SESS_FILTRE_CONTEXTE_VALUE'] )) {
		if (isset( $_SESSION['SESS_FILTRE_CONTEXTE'] )) {
			if ($_SESSION['SESS_FILTRE_CONTEXTE']==1) {
				$queryClauseContexte = " and contexte_id = ".$_SESSION['SESS_CONTEXTE_ID'];
				$_SESSION['SESS_FILTRE_CONTEXTE_VALUE'] = $_SESSION['SESS_CONTEXTE_ID'];
			} else {
				$_SESSION['SESS_FILTRE_CONTEXTE_VALUE'] = getAllRelatedContextes($_SESSION['SESS_MEMBER_ID']);
				$queryClauseContexte = " and contexte_id in (".$_SESSION['SESS_FILTRE_CONTEXTE_VALUE'].") ";
			}
		}
	} else {
		$queryClauseContexte = " and contexte_id in (".$_SESSION['SESS_FILTRE_CONTEXTE_VALUE'].") ";
	}
				
	$queryClausesSess = $queryClauseContexte.$queryClauseUtilisateur;
	
	if (isset($_SESSION['SESS_MEMBER_ID'])) {
		$qryContexte="SELECT DISTINCT id,nom_structure FROM `role` , `contexte`
							WHERE role.utilisateur_id = ".$_SESSION['SESS_MEMBER_ID']."
							AND role.contexte_id = contexte.id
							ORDER BY role.defaut DESC";
		$resultContexte=mysql_query($qryContexte) or die(mysql_error());
	}
	
?>
